package com.yunxi.vip.service;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.web.ApiResult;
import com.yunxi.core.web.LoginInfo;
import com.yunxi.vip.pojo.VipApplyVO;
import com.yunxi.vip.pojo.VipVO;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 
 * @since 2019-09-06
 */
public interface VipApplyDubboService {

    VipApplyVO getById(String id) throws InvocationTargetException, IllegalAccessException;

    void saveOrUpdate(VipApplyVO vipApplyVO) throws InvocationTargetException, IllegalAccessException;

    void removeById(String id);

    PageInfo<VipApplyVO> findPageByVO(VipApplyVO vipApplyVO, Integer pageNum, Integer pageSize) throws InvocationTargetException, IllegalAccessException;

    void removeByListVo(List<VipApplyVO> vipApplyVOList) throws IllegalAccessException, InvocationTargetException, InstantiationException;

    List listByVo(VipApplyVO vipApplyVO);

    ApiResult saveCas(VipApplyVO vipApplyVO, LoginInfo loginInfo);

    void removeByVoId(VipApplyVO vipApplyVO);

    ApiResult apply(VipApplyVO vipApplyVO, LoginInfo loginInfo);

    PageInfo<VipApplyVO> pageWait(VipApplyVO vipApplyVO,Integer pageNum,Integer pageSize,LoginInfo loginInfo);

    void next(VipApplyVO vipApplyVO,LoginInfo loginInfo);

    VipApplyVO getByCas(String applyId);

    ApiResult relateVehicle(String lsdh);

    void b2b(VipApplyVO vipApplyVO, LoginInfo loginInfo);

    VipVO getVipByOrderCustomerNo(String orderCustomerNo);

    void saveAttach(VipApplyVO vipApplyVO,LoginInfo loginInfo);

    VipVO getByVin(String vin);

    PageInfo<VipApplyVO> pageDone(VipApplyVO vipApplyVO, Integer pageNum, Integer pageSize, LoginInfo loginInfo);

    void updateDiscount(VipApplyVO vipApplyVO);
}
